package ces.lawsuit.controller;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.jfinal.kit.JsonKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;

import ces.lawsuit.model.Param;
import ces.lawsuit.model.ParamValue;
import ces.lawsuit.model.QueryModel;
import ces.lawsuit.model.Result;
import ces.lawsuit.util.App;
import ces.lawsuit.util.AppUtil;
import ces.lawsuit.util.QueryUtil;
import ces.lawsuit.util.Util;

public class ParamController extends BaseController<Param> {

	
	 public void dataGrid(){
		    QueryModel qm=getQueryModel();
	    	int pageSize=getParaToInt("pageSize",15);
	    	int pageNumber=getParaToInt("pageNumber",1)==0?1:getParaToInt("pageNumber",1);
	        renderJson(JsonKit.toJson(Param.me.paginate(pageNumber, pageSize, "SELECT *", "FROM T_Param where "+qm.getQuerySql(),qm.getValueList().toArray())));
	    }
  /**
   * 初始化参数
   * 
   **/
  private void init(){
	  
      Long id = getParaToLong("id");
	  setAttr("param",  Param.me.findById(id));
	  setAttr("paramList",Param.me.find(Param.LIST_SQL));
	  setAttr("paramValueList",ParamValue.me.find(ParamValue.LIST_SQL,id));
	  
  }
  /***
   *列表页面
   */
   public void index() {
		//setAttr("paramList", Param.me.find(Param.LIST_SQL));
	   String querySql=QueryUtil.createQuerySql(getRequest());
   	   int pageSize=getParaToInt("pageSize",15);
   	   int pageNumber=getParaToInt("pageNumber",1)==0?1:getParaToInt("pageNumber",1);
       setAttr("page", Param.me.paginate(pageNumber, pageSize, "SELECT *", "FROM T_Param where "+querySql));
	   render("/admin/param/list.html");
	}
   /**
    * 新增或者保存,可编辑datagrid 模式
    * **/
   // @Before(paramValidator.class)
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public void saveOrUpdate(){
//		String json=getPara("json");
//		List<Map> mapList=	JSON.parseArray(json, Map.class);
//	     for(Map map:mapList){
//	    	 Param pa=new Param();
//	    	 pa.setAttrs(map);
//	    	 if(Util.notNull(map.get("ID"))){
//	    		 pa.update();
//	    	 }else{
//	    		 if(Util.isNull(map.get("STATUS"))){
//	    			 pa.set("STATUS",App.Status.START);
//	    		 }
//	    		 pa.save();
//	    	 }
//	     }
	     Param param=getModel(Param.class);
//	     if(Util.notNull(param.get("ID"))){
//	    	 param.update();
//    	 }else{
//    		 if(Util.isNull(param.get("STATUS"))){
//    			 param.set("STATUS",App.Status.START);
//    		 }
//    		 param.save();
//    	 }
	     if(getParaToBoolean("isNew")){
	    	 param.save();
	     }else if(Util.isNull(param.get("id"))){
	    	 param.set("id",AppUtil.generateId());
	    	 param.save();
	     }else{
	    	 param.update();
	     }
	}
	
	public void show(){
		init();
		render("/admin/param/show.html");
	}
	public void edit(){
		init();
		render("/admin/param/edit.html");
	}
	/**
	 *删除 ,有sql攻击风险
	 **/
	public void delete() {
		String ids=getPara("id");
		if(StrKit.notBlank(ids)){
			Db.update(Param.BATCH_DELETE_SQL.replace("?", ids));
		}
		 Result result=new Result();
		 result.setStatusCode("200");
		 result.setMessage("操作成功!");
		 result.setCloseCurrent(false);
		 result.setTableid("");
		 renderJson(JsonKit.toJson(result));
	}
	//启用
	public void start(){
		String id=getPara(0);
		Db.update(ParamValue.START_SQL,id);
		renderSuccess();
	}
	//停用
	public void stop(){
		String id=getPara(0);
		Db.update(ParamValue.STOP_SQL,id);
		renderSuccess();
	}
}
